package com.cskaoyan.javase.oop3._2inner._3local._0introduction;

/**
 * 成员内部类和静态内部类都是定义在类的成员位置的内部类
 * 相对应的，定义在局部位置的内部类，称之为局部内部类
 *      简单来说，将局部内部类看成是局部变量即可，该局部内部类类的有效范围仅在作用域内部。（这意味着要创建它的对象，必须在作用域内部创建，因为出了作用域，局部内部类就无法访问到了）
 * 语法：
 * // 局部位置
 * class Inner{
 * }
 * // 局部位置
 *
 * 我们以方法中的局部内部类为例：
 * 它被方法限制了作用域，仅在方法内部生效。这时想要得到它的对象，就必须在这个方法内部创建对象。（当然要在局部内部类定义的下面创建它的对象）
 * 局部内部类的自身特点：
 *      1.修饰符
 *          和局部变量类似，它已经被作用域限制了，不需要修饰符修饰（访问权限修饰符，static都没有）
 *
 *      2.成员特点
 *          局部内部类的成员特点和成员内部类是一致的，没有static声明。
 *
 *      3.继承和实现
 *          可以，局部内部类主要的作用就是为了继承和实现的。
 *
 *
 * @since 14:28
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
}

class EnclosedClazz {
    public void test2(){}
    public static void test3(){}
    public void test() {
        // 定义局部内部类
        class Inner extends Demo{
            int a;
            private int b;
            static final int A = 10;
            static final String STRING = "123";
            // static final String str = new String();

            // static int c;
            // static {}
            // static void test(){}

            public Inner() {
            }
            {}
        }

        Inner i = new Inner();
    }

}
